From: Jan Beulich Date: Tue, 4 Nov 2014 12:07:23 +0000 (+0100) Subject: x86/PVH: replace bogus assertion with conditional X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~4112 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=01c019c843df313f62ca5c106544026867da9e9e;p=xen.git x86/PVH: replace bogus assertion with conditional While PVH guests currently have to start in 64-bit mode, nothing keeps them from entering compatibility mode via a suitable ring-0 code selector and making a hypercall from there. Fail such attempts rather than asserting they won't happen. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 78f519dc8d..8f49b440dd 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -4876,10 +4876,10 @@ int hvm_do_hypercall(struct cpu_user_regs *regs) regs->r8, regs->r9); curr->arch.hvm_vcpu.hcall_64bit = 0; } + else if ( unlikely(is_pvh_vcpu(curr)) ) + regs->_eax = -ENOSYS; /* PVH 32bitfixme. */ else { - ASSERT(!is_pvh_vcpu(curr)); /* PVH 32bitfixme. */ - HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%u(%x, %x, %x, %x, %x, %x)", eax, (uint32_t)regs->ebx, (uint32_t)regs->ecx, (uint32_t)regs->edx, (uint32_t)regs->esi,